<?php
	/*
	数据库类文件:class_database.php
	数据库操作类,本类是其他类操作的基础,即其他类函数的实现一般情况下通过数据库类实现
	创建世间:2007年5月17日
	*/
	include("config.inc.php");			//包含系统配置文件
	class data_class
	{
		//属性
		var  $host;	//服务器名
		var  $user;	//用户名
		var  $pwd;		//密码
		var  $name;	//数据库名		
		var  $connection;	//连接标识
		var  $result_c;
		//方法
		//__get():获取属性值
		function __get($property_name){  
			 if(isset($this->$property_name)) 
					return($this->$property_name); 
			 else 
					return(NULL); 
		} 		
		//__set():设置单个私有数据属性值,用于少量的修改数据
		function __set($property_name, $value) 
		{ 
			 $this->$property_name = $value; 
		} 		
		//__construct:构造函数,建立连接,在函数建立时自动调用建立,原则新建对象时不显式调用
		function __construct()
		{
			global $dbhost;
			global $dbuser;
			global $dbpswd;
			global $dbname;
			$this->host=$dbhost;	//使用sys_conf类的静态属性
			$this->user=$dbuser;
			$this->pwd =$dbpswd;
			$this->name=$dbname;
			//建立与数据库的连接
			//echo $dbhost."@@@@".$this->pwd;
			$this->connection=mysql_connect ($this->host,$this->user,$this->pwd);//建立连接
			if(!$this->connection)
			{
				echo "数据库连接出错!";
			}
			mysql_query("set names 'utf8'");//字符集的统一
			if(!mysql_select_db("$this->name", $this->connection))
			{
				echo "选择数据错误";
			}	//选择数据库挑战杯
		}
		//__destruct:析构函数,断开连接,在函数执行完毕时自动调用析构。实现关闭数据库的连接,保证数据库数据的安全
		function __destruct()
		{
			@mysql_close($this->connection);
		}
		//增删改:参数$sql为Insert update 
		function execute($sql)
		{
			$this->__construct();
			return @mysql_query($sql);
			$this->__destruct();
            //echo "写入数据库成功了";
			//echo "我是dataclass类的execute函数";
		}//execute
		//查:参数$sql为Insert语句
		//返回值为对象数组,数组中的每一元素为一行记录构成的对象
		function query($sql)
		{
			$this->__construct();
			$result_array = array();	//返回数组
			$i=0;										//数组下标
			//echo $sql;
			$query_result = mysql_query($sql,$this->connection);	//查询数据
			while($row = mysql_fetch_object($query_result))
			{
				$result_array[$i++]=$row;
			}//while
			$this->__destruct();
			return $result_array;
		}
		function num_res($sql)
		{
			$this->__construct();
			$query_result=@mysql_query($sql,$this->connection);	//查询数据
			$this->result_c=@mysql_num_rows($query_result);
			$this->__destruct();
			return $this->result_c;
		}
		function result_query($sql)
		{
			$this->__construct();
			$result=mysql_query($sql);
			$result_c=@mysql_num_rows($result);
			$this->__destruct();
			return $result_c;
		}
	}
?>